package com.zrrd.yt.product.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zrrd.yt.model.product.BaseCategoryView;
import com.zrrd.yt.model.product.SkuInfo;
import com.zrrd.yt.model.product.SpuImage;
import com.zrrd.yt.model.product.SpuSaleAttr;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author HongyueYang
 */
public interface SkuInfoService extends IService<SkuInfo> {
    //根据spu的id获取spu图片列表
    List<SpuImage> getSpuImageList(Long spuId);

    //根据spu的id获取spu的销售属性
    List<SpuSaleAttr> getSpuSaleAttrList(Long spuId);

    //添加sku
    void saveSkuInfo(SkuInfo skuInfo);

    //根据skuId获取sku信息
    SkuInfo getSkuInfo(Long skuId) throws InterruptedException;

    //根据三级分类ID 查询出3个分类的视图
    BaseCategoryView getCategoryView(Long category3Id);

    //根据skuId获取sku价格
    BigDecimal getSkuPrice(Long skuId);

    //根据spuId和skuId查询spu的销售属性以及属性值并且标记sku选择的属性值
    List<SpuSaleAttr> selectSpuSaleAttrListBySku(Long spuId,Long skuId);

    //根据spuId查询sku销售属性值信息
    Map selectSkuAttrValueBySpu(Long spuId);

    //获取全部分类信息（JSON层级）
    List<JSONObject> getBaseCategoryListJson();
}
